package com.ruoyi.depot.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 收货单对象 tb_receipt_products
 *
 * @author ruoyi
 * @date 2023-12-26
 */
public class DTOReceiptProducts extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 收货产品id */
    private String receiptProductId;

    /** 关联收货表(tb_receipt) */
    @Excel(name = "关联收货表(tb_receipt)")
    private String receiptId;

    /** 关联产品表(tb_product) */
    @Excel(name = "关联产品表(tb_product)")
    private Long productId;

    /** 采购数量 */
    private Long transferableNumber;

    /** 待到货量 */
    private Long waitingStock;

    /** 已通知量 */
    private Long notifiedCount;

    /** 未通知量 */
    private Long unnotifiedQuantity;

    /** 通知收货量 */
    @Excel(name = "通知收货量")
    private Long notificationQuantity;

    /** 收货量 */
    @Excel(name = "收货量")
    private Long receiptQuantity;

    /** 待检量 */
    @Excel(name = "待检量")
    private Long pendingQuantity;

    /** 未质检 */
    @Excel(name = "未质检")
    private Long notInspected;

    /** 质检中 */
    @Excel(name = "质检中")
    private Long qualityInspection;

    /** 已检量 */
    @Excel(name = "已检量")
    private Long checkedQuantity;

    /** 可用量 */
    @Excel(name = "可用量")
    private Long availableQuantity;

    /** 次品量 */
    @Excel(name = "次品量")
    private Long defectiveQuantity;

    /** 质检状态 */
    @Excel(name = "质检状态")
    private String qualityStatus;

    /** 删除状态 0存在1删除 */
    private String deleteStatus;

    /** 添加时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date addTime;

    /** 产品明细备注 */
    private String detailsRemark;

    /** 图片 */
    private List<String> imgName;

    /** 产品名称 */
    private String productName;

    /** 产品sku */
    private String sku;

    /** GTIN */
    private String gtin;

    /** 产品编号 */
    private String productProNo;

    /** 仓库id */
    private Long warehouseId;

    private Long id;

    /** 采购订单号id */
    private Long ordersId;

    /** 测试通知收货量 */
    private Long testNotificationQuantity;

    /** 采购订单明细表ID */
    private String ordersProductId;

    /**
     * 质检方式(0代表抽检，1代表全检，2代表免检)
     */
    private String inspectionType;

    /**
     * 本次质检量
     */
    private Long currentInspectionQuantity;

    /**
     * 汇总用于前端显示的gtin
     */
    private List<String> gtins;

    public Long getCurrentInspectionQuantity() {
        return currentInspectionQuantity;
    }

    public void setCurrentInspectionQuantity(Long currentInspectionQuantity) {
        this.currentInspectionQuantity = currentInspectionQuantity;
    }

    public Long getTestNotificationQuantity() {
        return testNotificationQuantity;
    }
    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public List<String> getGtins() {
        return gtins;
    }

    public void setGtins(List<String> gtins) {
        this.gtins = gtins;
    }

    public void setTestNotificationQuantity(Long testNotificationQuantity) {
        this.testNotificationQuantity = testNotificationQuantity;
    }

    public String getInspectionType() {
        return inspectionType;
    }

    public void setInspectionType(String inspectionType) {
        this.inspectionType = inspectionType;
    }

    public Long getOrdersId() {
        return ordersId;
    }

    public void setOrdersId(Long ordersId) {
        this.ordersId = ordersId;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getProductProNo() {
        return productProNo;
    }

    public void setProductProNo(String productProNo) {
        this.productProNo = productProNo;
    }

    public String getGtin() {
        return gtin;
    }

    public void setGtin(String gtin) {
        this.gtin = gtin;
    }

    public List<String> getImgName() {
        return imgName;
    }

    public void setImgName(List<String> imgName) {
        this.imgName = imgName;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getSku() {
        return sku;
    }

    public void setSku(String sku) {
        this.sku = sku;
    }

    public Long getTransferableNumber() {
        return transferableNumber;
    }

    public void setTransferableNumber(Long transferableNumber) {
        this.transferableNumber = transferableNumber;
    }

    public String getDetailsRemark() {
        return detailsRemark;
    }

    public void setDetailsRemark(String detailsRemark) {
        this.detailsRemark = detailsRemark;
    }

    public Long getWaitingStock() {
        return waitingStock;
    }

    public void setWaitingStock(Long waitingStock) {
        this.waitingStock = waitingStock;
    }

    public Long getNotifiedCount() {
        return notifiedCount;
    }

    public void setNotifiedCount(Long notifiedCount) {
        this.notifiedCount = notifiedCount;
    }

    public Long getUnnotifiedQuantity() {
        return unnotifiedQuantity;
    }

    public void setUnnotifiedQuantity(Long unnotifiedQuantity) {
        this.unnotifiedQuantity = unnotifiedQuantity;
    }

    public String getReceiptProductId() {
        return receiptProductId;
    }

    public void setReceiptProductId(String receiptProductId) {
        this.receiptProductId = receiptProductId;
    }

    public String getReceiptId() {
        return receiptId;
    }

    public void setReceiptId(String receiptId) {
        this.receiptId = receiptId;
    }

    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }

    public Long getNotificationQuantity() {
        return notificationQuantity;
    }

    public void setNotificationQuantity(Long notificationQuantity) {
        this.notificationQuantity = notificationQuantity;
    }

    public void setReceiptQuantity(Long receiptQuantity)
    {
        this.receiptQuantity = receiptQuantity;
    }

    public Long getReceiptQuantity()
    {
        return receiptQuantity;
    }
    public void setPendingQuantity(Long pendingQuantity)
    {
        this.pendingQuantity = pendingQuantity;
    }

    public Long getPendingQuantity()
    {
        return pendingQuantity;
    }
    public void setNotInspected(Long notInspected)
    {
        this.notInspected = notInspected;
    }

    public Long getNotInspected()
    {
        return notInspected;
    }
    public void setQualityInspection(Long qualityInspection)
    {
        this.qualityInspection = qualityInspection;
    }

    public Long getQualityInspection()
    {
        return qualityInspection;
    }
    public void setCheckedQuantity(Long checkedQuantity)
    {
        this.checkedQuantity = checkedQuantity;
    }

    public Long getCheckedQuantity()
    {
        return checkedQuantity;
    }
    public void setAvailableQuantity(Long availableQuantity)
    {
        this.availableQuantity = availableQuantity;
    }

    public Long getAvailableQuantity()
    {
        return availableQuantity;
    }
    public void setDefectiveQuantity(Long defectiveQuantity)
    {
        this.defectiveQuantity = defectiveQuantity;
    }

    public Long getDefectiveQuantity()
    {
        return defectiveQuantity;
    }
    public void setQualityStatus(String qualityStatus)
    {
        this.qualityStatus = qualityStatus;
    }

    public String getQualityStatus()
    {
        return qualityStatus;
    }
    public void setDeleteStatus(String deleteStatus)
    {
        this.deleteStatus = deleteStatus;
    }

    public String getDeleteStatus()
    {
        return deleteStatus;
    }
    public void setAddTime(Date addTime)
    {
        this.addTime = addTime;
    }

    public Date getAddTime()
    {
        return addTime;
    }

    public String getOrdersProductId() {
        return ordersProductId;
    }

    public void setOrdersProductId(String ordersProductId) {
        this.ordersProductId = ordersProductId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("receiptProductId", getReceiptProductId())
                .append("receiptId", getReceiptId())
                .append("productId", getProductId())
                .append("notificationQuantity",getNotificationQuantity())
                .append("receiptQuantity", getReceiptQuantity())
                .append("pendingQuantity", getPendingQuantity())
                .append("notInspected", getNotInspected())
                .append("qualityInspection", getQualityInspection())
                .append("checkedQuantity", getCheckedQuantity())
                .append("availableQuantity", getAvailableQuantity())
                .append("defectiveQuantity", getDefectiveQuantity())
                .append("qualityStatus", getQualityStatus())
                .append("deleteStatus", getDeleteStatus())
                .append("addTime", getAddTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }

}
